package persistence;

import core.exception.SaveException;

/**
 * interface for the product data access object
 * @author Sabrina
 *
 */
public interface ProductDAO 
{
	/**
	 * Updates the data persistence with a new product
	 * 
	 * @param ProductDTO the DTO with the product's info
	 * @throws Exception if can't add product to data persistence
	 */
	abstract void addProduct(ProductDTO dto) throws SaveException;
	
	/**
	 * Updates the data persistence to reflect a change in an product
	 * 
	 * @param ProductDTO the DTO with the product's info
	 * @throws Exception if can't update product in data persistence
	 */
	abstract void updateProduct(ProductDTO dto) throws SaveException;
	
	/**
	 * Updates the data persistence to remove an product
	 * 
	 * @param ProductDTO the DTO with the product's info
	 * @throws Exception if can't remove product from data persistence
	 */
	abstract void removeProduct(ProductDTO dto) throws SaveException;
}
